ProCalc™   Scientific Calculator
 Copyright © 1994 John Brochu    Version 1.2.0,  September 1994

ProCalc™ is distributed as SHAREWARE. You are allowed to try out the program free for 15 days, after which time a reminder dialog will pop up every 3 days to remind you to register. After the 15 day trial period, if you decide the program is of use to you, you are required to register by filling out the registration form (click Register... in the About dialog), printing it out, and sending it, along with the $20 payment, to the address in the registration dialog. You will receive a registration letter which will contain your unique serial number that will unlock your version of ProCalc, disable the annoying reminder dialog, and enable several new features. You will also receive a disk filled with over 50 high quality public domain System 7 - format sounds which you can use as system beeps, with programs such as SoundMaster, or just for fun. Also included is the latest version of ProCalc. The disk is provided as a thank you for registering. For organizations with five or more users, site licenses are available at $10 per user.

DISTRIBUTION

ProCalc may not be sold or distributed for profit in any form, either with other products (commercial, shareware, or freeware), or in shareware/freeware collections sold for profit, without the prior written consent of the author. ProCalc may be distributed freely provided it is distributed in a non-profit manner, and is provided in its original unmodified form. However, please notify the author if ProCalc is to be included in non-profit collections on disk, CD ROM, or other media.

DISCLAIMER

The author, John Brochu, makes no warranties regarding this program, its performance, or fitness to any purpose. The author is not responsible for any damage or data loss caused directly or indirectly through the use of this program.

Feature Summary

ProCalc is a full-featured replacement for Apple's standard Calculator DA. It features a complete set of scientific functions with adjustable display formatting, as well as complete binary math functions with calculations and display in binary, octal, decimal, and hexadecimal. The scientific mode features selectable scientific, engineering, and decimal-only notation, as well as automatic display notation, with floating or adjustable fixed decimal point. The binary math modes feature selectable number sign (signed or unsigned) and size (byte, word, or long), and complete bit wise operators with 680x0 condition code indicators. You can select from standard sequential operation ordering, algebraic ordering, or Reverse Polish Notation (complete HP-standard RPN, with stack roll and last entry functions, as well as a unique stack indicator in the display). There is also a 10 number memory with 5 operations, an optional automatic constant, and up to 50-levels of nested parenthesis. A scrollable “paper tape” window is also available to record and print out your calculations. You can save a tape document to disk and reopen it later to continue your calculations exactly where you left off.

ProCalc can be configured as a basic 4-function calculator, similar to the Apple Calculator DA. Click the window zoom box at the upper right of the ProCalc window to toggle between basic and full configurations.

ProCalc provides two options for reducing the size of the calculator, so you can tuck it away in the corner of the screen while working in another application. The first, minimize, reduces the calculator to a small display-only window, in which you still have quick access to all of ProCalc's functions from the keyboard, with full cut & paste support. You can also set ProCalc to display the current time and date while in the background. The second option, iconize, reduces ProCalc to an icon on the desktop. ProCalc can be quickly minimized or iconized by clicking on the iconize button on the calculator.

ProCalc also has a special feature called SwitchBack that allows you to instantly switch back to the calculator while you are working in another application. You can select any combination of the shift, control, option, and command keys to act as your SwitchBack hotkey. There is also a menu command and command-key you can use to easily switch back to the other application. Using these two options, you can quickly and easily switch back and forth between ProCalc and another application.

Balloon Help is available for the calculator buttons, where each button is identified with the full name of the function and its current key assignment, as well as in the Preferences, Key Assignments, and Number Format dialogs.

Keyboard equivalents for all functions are definable, and you can even move the buttons themselves around to suit your own tastes!

A major effort was put into the design, appearance, and operation of ProCalc. Although there are quite a few calculators available for the Mac, ProCalc is one of the easiest and most fun to use. System 7 is fully supported, with Balloon Help and Apple Event support.

System Requirements

ProCalc requires at minimum a Macintosh Plus, and System 6.0.5 or better. System 7 is recommended, as some options are disabled under earlier systems. A color Mac is also recommended, but not required. ProCalc will need about 300K of available memory to run.

About the ProCalc User's Manual and Reference Guide

This version of ProCalc includes the ProCalc User's Manual, which you are now reading, and the ProCalc Reference Guide, a guide to the menu and dialog commands available in ProCalc. You can open either document, or switch between them by selecting the appropriate option from the Help menu (you cannot display both at the same time). Either document can be printed complete with formatting by choosing the Print... command from the File menu, with either window in front. You should choose Page Setup... first to confirm the printer is set up properly. For best results, turn “Font Substitution” off if your printer has that option.

You can also save either text as a TeachText document by choosing Save as TeachText... from the File menu. The document is saved complete with a‘styl’ resource, so that it can be read correctly with SimpleText, as well as with other style-aware text editors such as Tex-Edit, Joliwrite, and the America Online editor.

The ProCalc User's Manual and ProCalc Reference Guide are available either from the Help menu or from the About ProCalc... dialog. To open the reference from the About dialog, option-click the Help... button.

The cursor keys are active on extended keyboards so that you can easily scroll through the help windows.

Fonts used in this document are Geneva, Monaco, Times, and Helvetica. (Geneva is replaced with Times when printing.)

Basic Operation

All buttons can be activated with either the mouse or keyboard. The keypad works as expected, with the enter key, as well as the return key, equivalent to the [ = ] button on the calculator. If you do not have a keypad, you can enable the Keypad Emulation option, and use the M, J, K, L, U, I, O, 7, 8, and 9 keys as a numeric keypad.

Some of the buttons also have a secondary function that can be activated either by first pressing the [2nd] button or by holding down the control key while pressing the button. Pressing the [2nd] button or control key immediately changes the relevant buttons to indicate their new functions.

Iconizing and Minimizing

ProCalc can be quickly reduced to its iconized state by clicking the iconize button on the calculator. The calculator window will be hidden and will be replaced by a small calculator icon on the desktop. Whether or not the icon appears in a window with a title bar can be set in Preferences. The icon can then be dragged to a convenient location on the desktop, where it will remain until clicked on, or ProCalc is quit. Clicking on the icon restores ProCalc to its previous state.

If the function of the iconize button is set to minimize instead of iconize (see “The Preferences Dialog” in the ProCalc Reference Guide), then clicking on the iconize button will reduce the calculator to the minimized display window. As with the icon, you can drag the display to any position on the screen, and clicking on the display restores the full calculator. When the minimized display window is active and front-most, all defined keys are available (see “Key Assignments” below), and can be used to perform calculations, as if ProCalc were in its full active state.

The function of the iconize button (minimize or iconize) can be selected in Preferences. The alternate function can be performed by pressing the [2nd] button followed by the iconize button.

ProCalc can be set to automatically switch back to the application that was active before ProCalc when the calculator is iconized or minimized, as well as automatically iconize or minimize itself when you switch it to and from the background, by selecting these options in Preferences.

The Minimize and Iconize commands are also available from the Options menu.

Numeric Display and Entry

The display in scientific mode has a 12- or 16-digit mantissa with a 2-digit exponent. This is selectable in Preferences. The display in [Hex], [Dec], and [Oct] modes is 16 digits maximum, and in [Bin] mode, 32 digits. In the basic 4-function mode the display is either 8 or 10 digits, with no exponent. This is summarized in the table below.

                        CALCULATOR MODE
   #DIGITS     Basic  Sci  Hex  Dec  Oct  Bin
   Large font    8:0  12:2   16   16   16   32
   Small font   10:0  16:2   16   16   16   32

During number entry, you can delete the last number in the display by pressing the backspace button (or its keyboard equivalent).

The [CE/C] (Clear Entry/Clear) button can be used to clear the current display if numeric entry is in progress, or to clear the calculator if a calculation has just been completed. The [AC] (All Clear) button resets the display and restores the calculator to its default condition.

The Edit menu is accessible at all times so that you can cut and paste numeric text freely to and from ProCalc.

In all modes, there are 50 levels of nested parenthesis available, and the current nesting level is shown in the display.

Automatic Constant

The automatic constant allows you to do repetitive calculations with a common number and operator. The constant is set whenever a two-number operation is completed with the [ = ] button. When a calculation is completed, the operator and the last entered number or result are stored as the automatic constant. You can then enter a new number and press the [ = ] button, and the calculator will automatically complete the operation using the stored operator and constant. You can also repeatedly execute the automatic constant on the current display by simply pressing the [ = ] button. The automatic constant is cleared when the [CE/C] button is pressed, or the calculation mode is changed. You can turn the automatic constant off by unchecking this option in the Options menu. You may also disable and clear the constant for the current operation by option-clicking the [ = ] button. This will complete all pending operations without setting or activating the automatic constant.

Paper Tape Window

The paper tape window automatically records all calculations performed in either the main calculator, reduced calculator, or minimized display. All operating mode and number formatting changes are also recorded internally. Using the tape window, you can easily verify your important calculations on-screen or after printing. ProCalc includes the option to print your calculations to a neatly formatted columnar printout, with the tape document name, time and date at the top of each page. The printout can be formatted to any page size or orientation by selecting the desired options in the Page Setup dialog. You can save your tape calculations to a tape document at any time. Also, because ProCalc saves all calculator state information with each tape entry, you can later reopen a saved tape document, and continue with your calculations right where you left off! All operations and memory registers will be restored as long as you stored them with tape logging turned on. This works by running each number and operation on the tape back through the calculator, as if you had just entered them in by hand (numbers are stored on the tape in their internal format, which retains their original precision).

There are several options that control and/or effect the tape window. The Automatic tape logging option (in Preferences) and tape logging switch (in the Options menu) control whether ProCalc saves calculations to tape. If Automatic tape logging is enabled, calculations are saved only when the tape window is showing. If Automatic tape logging is not enabled, you can manually enable or disable tape logging by selecting the Turn Logging On / Off command in the Options menu. The Log intermediate results option (in Preferences) determines whether results of intermediate operations are logged to the tape (when you press the ‘+’ button, for instance, an intermediate result is displayed in the calculator's main display). The Prompt to save changes option (also in Preferences) determines whether ProCalc warns you before erasing the contents of the tape window. The Thousands separator option (in the Number Format dialog) determines whether thousands separators are shown in the tape window. Finally, of course, the Show / Hide Tape Window command (in the Options menu) shows or hides the tape window.

All numbers logged to the tape are displayed in the number format in effect at the time it was logged, with the exception that numbers are always expressed with 10 digits in the mantissa. Numbers logged in binary [Bin] mode are truncated to the low word or lower 16 bits (in display only, the entire number is retained in calculations). Changes in number format do not effect previous numbers on the tape.

Tape documents can be opened from the Finder by double-clicking the document or selecting the document and choosing Open from the Finder's File menu. Only a single document can be opened at a time (if you try to open multiple documents, only one will be opened. You can also print directly from the Finder by selecting the document or documents and choosing Print from the Finder's File menu. All selected documents will be printed by ProCalc. ProCalc can either be running or not when documents are opened or printed from the Finder. While a document opened from the Finder replaces the current tape document in the tape window if ProCalc is running, printed documents do not effect the tape window in any way.

Operating Modes

ProCalc can be operated in one of five modes, scientific mode [Sci], and four binary math modes [Hex], [Dec], [Oct], and [Bin]. As you change modes, the calculator buttons change to indicate the different functions available. The number in the display is retained between modes, so that you can easily do number conversions between bases, as well as mixed calculations. Any numbers stored in the memories are also retained, and will be displayed in the current mode's format when recalled.

NOTE:  When ProCalc is switched to the basic 4-function mode, the calculator automatically switches to scientific mode with either an 8 or 10 digit display (depending on the display font setting in Preferences), decimal notation (no exponent), and a floating decimal point. The settings in effect when the switch occurred are restored when you switch back out of 4-function mode.

Scientific Number Formatting

ProCalc offers several formatting options for displaying numbers in scientific mode. The following functions effect number formatting...

  [flo]  Automatic floating point notation - automatically uses either scientific or decimal notation, whichever results in the highest accuracy in the display.
  [sci]  Scientific notation - mantissa with exponent (exponent always displayed).
  [eng]  Engineering notation - same as scientific notation except exponent is always a multiple of three. Useful in dealing with metric measurements where values are commonly powers of three.
  [dec]  Decimal notation - mantissa only, no exponent.

  [fix]  Fix decimal point - press this button followed by a number 0-9 to set the number of decimal places to be shown in the display. To reset the decimal point back to a floating decimal point, press the [fix] button a second time instead of pressing 0-9, ie. press [fix] twice in succession.

NOTE:  if you select the [fix] button with the control key as opposed to pressing the [2nd] button first, you must continue holding the control key while you press the number button. Otherwise, the [2nd] and [fix] buttons will become deselected as soon as you release the control key, and the function will be deactivated.

The display format can also be set from the Number Format dialog, available in the Options menu (see “The Number Format Dialog” in the ProCalc Reference Guide).

Scientific Functions

Scientific functions are available only when in [Sci] mode, and are as follows...

  [log]  Base 10 log
  [10X]  Inverse base 10 log
  [ln ]  Natural log
  [eX ]  Inverse natural log
  [x2 ]  Square
  [√x ]  Square root
  [x3 ]  Cube
  [3√x]  Cube root
  [yX ]  Universal power
  [x√y]  Universal root
  [1/x]  Inverse
  [ x!]  Factorial
  [ % ]  Percent
  [∆% ]  Delta percent
  [x•y]  Swap x with y
  [P>R]  Polar to rectangular coordinates
  [R>P]  Rectangular to polar coordinates

The percent function works with the [ + ], [ - ], [ x ], and [ ÷ ] keys, or by itself, to perform the following functions...

  X[ + ]Y[ % ][ = ]   Mark-up  ( X plus Y% of X )
  X[ - ]Y[ % ][ = ]   Discount  ( X minus Y% of X )
  X[ x ]Y[ % ][ = ]   Percentage  ( Y% of X )
  X[ ÷ ]Y[ % ][ = ]   Ratio  ( X is what % of Y )
  X[ % ]              Percent to decimal conversion
  X[∆% ]Y[ = ]        Delta percent  ( ( X ÷ Y - 1 ) x 100% )

The delta percent function is activated by pressing the [2nd] button followed by the percent button, and calculates the change in percentage that occurs between two numbers, expressed as a percentage of the second number.

The [x•y] function, in addition to being used in polar to rectangular conversions, can also be used to swap the currently displayed value with the last entered operand. This also effects the automatic constant. 

Polar to rectangular and rectangular to polar calculations are performed by entering the x or r value, pressing the [x•y] button to save the x value, entering the y or Ø value, then executing the function by pressing the [R>P] or [P>R] button. The resulting r or x result is immediately shown in the display. The Ø or y part of the result is retrieved by pressing [x•y] to retrieve the y value.

The trigonometric functions are as follows...

  [sin], [cos], [tan]     Standard trig functions
  [asin], [acos], [atan]  Inverse trig functions, press [2nd] button first
  [Hyp]                 Enables hyperbolic equivalents of the above
  [ π ]                 Enter the value of Pi (3.141592653589793...)

The [2nd] and [Hyp] buttons can be used separately or together to invoke the arc (inverse) and hyperbolic trig functions. For instance, if you want the hyperbolic arc sin of a number in the display, depress the [Hyp] and [2nd] buttons before pressing the [sin] button.

You can enter angles in degrees, radians, or grads, depending on the current angle mode as shown in the display. To change the current angle mode, press the [DRG] button. You can convert angles between degrees, radians, and grads by using the [>DRG] button (press the [2nd] button followed by the [DRG] button). All trig calculations, both input and results, use the current angle mode for calculation and display.

Numbers can be entered in scientific notation by entering the mantissa, pressing the [EXP] (Exponent) button, and then entering the exponent (-99...99).

Binary Functions

In any of the binary math modes, the number type (signed or unsigned) can be changed using the [SIGN] button, and the word size (byte - 8 bits, word - 16 bits, or long - 32 bits) can be changed using the [SIZE] button. The size changes from B->W->L as you press the [SIZE] button, or from L->W->B if you press the [SIZE] button while the [2nd] button is depressed. The current sign and word size is shown in the display as ‘SBYTE’, ‘UBYTE’, ‘SWORD’, ‘UWORD’, ‘SLONG’, or ‘ULONG’.

A displayed number may be truncated or sign-extended when switching word sign or size, depending on the size of the number. If it is truncated, an error message will appear in the display, but you can still continue with the calculation if you wish.

Binary math functions are available in [Bin], [Oct], [Dec], and [Hex] modes only and are as follows...

  [AND]  Bit wise AND
  [OR ]  Bit wise OR
  [XOR]  Bit wise exclusive OR
  [MOD]  Modulus (division remainder)
  [NOT]  One's complement
  [NEG]  Negate (two's complement)
  [ASL]  Arithmetic shift left
  [ASR]  Arithmetic shift right
  [LSL]  Logical shift left
  [LSR]  Logical shift right
  [ROL]  Rotate left
  [ROR]  Rotate right
  [ASLx] Arithmetic shift left ‘x’ bits
  [ASRx] Arithmetic shift right ‘x’ bits
  [LSLx] Logical shift left ‘x’ bits
  [LSRx] Logical shift right ‘x’ bits
  [ROLx] Rotate left ‘x’ bits
  [RORx] Rotate right ‘x’ bits

The last six operations (shift and rotate ‘x’ operations) use locking buttons, similar to the extended memory functions. Press the button and the button locks, then press a number button 0-9 or A-F, and the operation is completed. Shifts or rotates of 1 to 16 bits are possible with these operations (pressing the 0 button shifts 16 bits).

All operations in this mode (except as noted) execute the corresponding 680x0 instruction directly and then check the CPU condition codes and display the codes in the display. For multiplication, division, and modulus operations, the operation is carried out using floating point arithmetic, then the result is moved into a data register, and the condition codes are checked and displayed. The condition codes displayed are...

    C    Carry
    V    oVerflow (result overflow)
    Z    Zero (result is zero)
    N    Negative (high-order bit is set)

An upper case character indicates the condition is true (bit set), while lower case indicates false (bit cleared). 

Memory Functions

ProCalc has a total of ten memories, each of which can be used to store a displayed entry or result. One of these memories, the main memory, is accessed directly by pressing one of the five memory function buttons. The nine supplemental memories are accessed by first pressing the [2nd] button, then a memory function button, and finally a numeric button 1 - 9. The five memory functions are as follows...

  [STO], [STOx]  store display contents in memory
  [RCL], [RCLx]  recall memory contents to display
  [EXG], [EXGx]  exchange display contents with memory
  [CLR], [CLRx]  clear (store a 0) in memory
  [SUM], [SUMx]  add display contents to memory

To access the corresponding supplemental memory functions, press the [2nd] button followed by one of the memory function buttons. The memory function button will then lock (stay highlighted), and you may then press a numeric button 1-9 to access memories 1 through 9. The [STOx], [CLRx], and [SUMx] functions can also be applied to all nine supplemental memories at once. To do so, instead of pressing a numeric button to access a specific memory, press and hold the control key, and press the desired memory function button again.

NOTE:  Numbers are stored in the memories in a format independent of the current display mode, and always retain their original precision, even when switching between display modes.

There are 10 memory status indicators in the display (M for the main memory, and 1-9 for the nine supplemental memories) that indicate when a memory has non-zero contents.

All memories can be saved along with the current configuration by selecting that option in the Preferences dialog.

NOTE:  The memories cannot be saved if ProCalc is not registered.

Error Messages

There are several possible error conditions that can occur. Following is a list of possible errors and their causes...

  ERROR: DIVIDE BY ZERO         Attempted division by zero
  ERROR: MATH OVERFLOW          Floating point math overflow
  ERROR: MATH UNDERFLOW         Floating point math underflow
  ERROR: DISPLAY OVERFLOW       Result too large to display
  ERROR: DISPLAY UNDERFLOW      Result too small to display
  ERROR: OPERAND OUT OF RANGE   Operand for selected function invalid
  (INTEGER OVERFLOW)            Result too large to fit in current word size

The last error occurs only in the binary math modes, and is a warning only. You can still continue with the calculation, but the result may not be accurate. For all other errors you must press the [CE/C] key to clear the error condition.

Customization

ProCalc can currently be customized in two ways - key assignment, and physical button arrangement. Both options can be exercised whether the program is registered or not. However, these settings are not saved between sessions in the unregistered version, so all changes are lost when you quit ProCalc. You must register to enable saving of custom key assignments and button layout.

Key Assignments

The Key Assignments dialog is accessed from the Edit menu, or by holding the command key while clicking one of the calculator buttons. The calculator must be in its full or 4-function state (buttons visible) to access the dialog. The dialog is a movable-modal dialog, which means it can be moved around freely by dragging the title bar, but must be dismissed before using any other function of ProCalc. You can move the calculator window around while the dialog is displayed by command-dragging the title bar.

Key Assignments allows you to assign any key combination to any button on the calculator. A key combination can be any combination of the shift, option and command keys (the control key is reserved by ProCalc), along with one other key. You cannot assign different keys to the shifted and unshifted functions of a button, the key you select is automatically assigned to both functions. You can activate the [2nd] function of a button by holding control and pressing the key combination assigned to the button.

NOTE:  Some keys are permanently bound to certain functions, such as the numeric keys 0-9, A-F in [Hex] mode, the enter and return keys, and the keypad emulation keys if that option is turned on. These keys cannot be assigned to other functions. Also, you cannot assign command keys that are used to select menu commands. You will presented with an alert box if you attempt to assign one of these keys to a function. If you select a key combination that has already been assigned to another function, you will be presented with an alert that will let you reassign it to the new function, or cancel.

To select a button to assign a key to, simply bring up the Key Assignments dialog, and click any button on the face of the calculator. The Function and Key assignment fields are updated to reflect the button's function and current key assignment. To change the key assigned to the button, simply press the desired key combination. Click Revert to disregard changes made to the assignment since the function was selected, click Unassign to erase the key assignment and make it undefined, and click Done to accept the current assignment and dismiss the dialog.

Button Layout

All buttons on the main calculator and on the 4-function calculator can be rearranged. To do so, press and hold the option key while clicking the button you wish to move. Now drag to the new location. The button you dragged to will swap positions with the button initially selected. If you change your mind before releasing the button, just drag the button to the face of the calculator so that no buttons are selected, and release the button. No changes will be made to the button positions.

Comments From Users

“Really great product... I am VERY impressed. Your calculator should be bought by Apple to include with system software...”   M.H., Cypress CA

“A really elegant piece of work – superior to any of the commercial alternatives... The kind of shareware I'm pleased to support. Thanks!”   L.M., King of Prussia PA

“Very very professional!”   K.K., Roswell GA

“Impressive! I teach math (HS) and this is just what I was looking for. Thanks!!”   B.C., Lakewood CA

“Nice piece of work!”   C.M., Apple Computer

“Love it. Best ever - and I think I've tried them all.”   C.G., Falls Church VA

“This is a great app., and the best calculator I've ever seen for the Mac! Very slick.”  M.K., Tupper Lake NY

“Just what I was looking for. Love the 3D interface...”    M.C., Lafayette LA

“I've often thought one of the nicest things about the Mac is that we get to use software tools and an interface that's had the benefit of 10 years to mature. ProCalc is a perfect example. What an utterly elegant program!”  M.O., (via Internet mail)

ProCalc 1.1.0 was awarded Honorable Mention in the 1994 MacUser Shareware Awards, Personal Productivity category, and was rated 5 stars (out of 5) by MacUser's ZiffNet/Mac service on eWorld.

Thanks to...

• Chris Brannon & Tom Townsend, who helped me test v1.2.0, and offered lots of great suggestions. Thanks guys!
• Troy Gaul of Infinity Systems, for his excellent Infinity Windoid WDEF v2.6, used to make the windows with the mini title bars.
• Other testers who helped test various features... Jason Holtzapple, Kishore Tipirneni, and Marvin Ziegler.
• A big thanks to Todd Curry, for taking the time to send me info on RPN/business calculators, which helped a lot in the RPN implementation.
• A special thanks to all the people who have registered, and contributed their suggestions. This version is the direct result of everyone's excellent ideas and support. Many people asked for the tape window and RPN, as well as the thousands separators. Thanks for supporting shareware!

Contacting the Author

I hope you enjoy using ProCalc. If you have any suggestions for improvement, new features, or most of all, bug reports, please contact me at one of the addresses below. I have done my best to make ProCalc the best calculator available for the Mac, and will continue to improve it, based on your input. If you have any ideas, please write!

Internet:        johnbrochu@aol.com
America OnLine:  JohnBrochu
eWorld:          JohnBrochu
Compuserve:      70376,1235

US Mail:         John Brochu
                 PO Box 645
                 Beverly, MA  01915